home *** CD-ROM | disk | FTP | other *** search
/ Loadstar Extras 3 / Ex3side1.d64 / scroll source < prev    next >
Text File  |  2022-08-28  |  4KB  |  379 lines

  1. open =$ffc0
  2. readst =$ffb7
  3. setlfs =$ffba
  4. setnam =$ffbd
  5. load =$ffd5
  6. getin =$ffe4
  7. clrchn =$ffcc
  8. close =$ffc3   ;a
  9. chrin =$ffcf
  10. chkout =$ffc9  ;x
  11. chkin =$ffc6   ;x
  12. plot =$fff0
  13.  
  14. color'pointer =243
  15. screen'line'pointer =209
  16. print'number =$bdcd ;x,a
  17. clear'line =59903
  18. background =53281
  19. border =53280
  20. unlisten =$ffae
  21. clall =$ffe7
  22.  
  23. ;scroll sysaddr,x,to x,y, to y, direction
  24. ;dir 0=up 1= down 2=left 3=right 4=up/left 5=up/right 6=down/left 7=down/right
  25. ;clear line sysaddr+3,screen code,color
  26.  
  27. .org $cc00
  28. .obj "scroll cc00"
  29. jmp over
  30. jmp clear'row
  31.  
  32. over jsr get'number
  33. sta startingx
  34. cmp #40
  35. bcs quit
  36. jsr get'number
  37. sta endingx
  38. cmp #40
  39. bcs quit
  40. jsr get'number
  41. sta startingy
  42. cmp #25
  43. bcs quit
  44. jsr get'number
  45. sta endingy
  46. cmp #25
  47. bcs quit
  48. jsr get'number
  49. and #7
  50. sta direction
  51.  
  52. jmp linx
  53.  
  54. quit rts
  55.  
  56. linx ldy #24
  57. - lda 217,y
  58. ora #128
  59. sta 217,y
  60. dey
  61. bpl -
  62.  
  63.  
  64. get'routine lda direction
  65. asl
  66. tax
  67. lda sub'table+1,x
  68. pha
  69. lda sub'table,x
  70. pha
  71. rts
  72.  
  73. scroll'up ldy startingx
  74. ldx startingy
  75. stx line
  76. clc
  77. jsr plot
  78. jsr old'rom'patch
  79.  
  80. scroll'up'math clc
  81. lda 209
  82. adc <40
  83. sta 251
  84. lda 210
  85. adc >40
  86. sta 252
  87.  
  88. clc
  89. lda 243
  90. adc <40
  91. sta 253
  92. lda 244
  93. adc >40
  94. sta 254
  95.  
  96. ldy startingx
  97.  
  98. - lda (251),y
  99. sta (209),y
  100. lda (253),y
  101. sta (243),y
  102. iny
  103. cpy endingx
  104. beq -
  105. bcc -
  106.  
  107. inc line
  108. lda line
  109. cmp endingy
  110. bcs through'scrolling'up
  111.  
  112. clc
  113. lda 209
  114. adc <40
  115. sta 209
  116. lda 210
  117. adc >40
  118. sta 210
  119.  
  120. clc
  121. lda 243
  122. adc <40
  123. sta 243
  124. lda 244
  125. adc >40
  126. sta 244
  127. jmp scroll'up'math
  128.  
  129. through'scrolling'up ldx endingy
  130. ldy startingx
  131. clc
  132. jmp plot
  133. jsr old'rom'patch
  134.  
  135. scroll'down ldy startingx
  136. ldx endingy
  137. stx line
  138. clc
  139. jsr plot
  140. jsr old'rom'patch
  141.  
  142.  
  143. scroll'down'math sec
  144. lda 209
  145. sbc <40
  146. sta 251
  147. lda 210
  148. sbc >40
  149. sta 252
  150.  
  151. sec
  152. lda 243
  153. sbc <40
  154. sta 253
  155. lda 244
  156. sbc >40
  157. sta 254
  158.  
  159. ldy startingx
  160.  
  161. - lda (251),y
  162. sta (209),y
  163. lda (253),y
  164. sta (243),y
  165. iny
  166. cpy endingx
  167. beq -
  168. bcc -
  169.  
  170. dec line
  171. lda line
  172. cmp startingy
  173. beq through'scrolling'down
  174.  
  175. sec
  176. lda 209
  177. sbc <40
  178. sta 209
  179. lda 210
  180. sbc >40
  181. sta 210
  182.  
  183. sec
  184. lda 243
  185. sbc <40
  186. sta 243
  187. lda 244
  188. sbc >40
  189. sta 244
  190. jmp scroll'down'math
  191.  
  192. through'scrolling'down ldx startingy
  193. ldy startingx
  194. clc
  195. jsr plot
  196. jmp old'rom'patch
  197.  
  198. scroll'left ldy startingx
  199. ldx startingy
  200. stx line
  201. clc
  202. jsr plot
  203. jsr old'rom'patch
  204.  
  205. scroll'left'math clc
  206. lda 209
  207. adc <1
  208. sta 251
  209. lda 210
  210. adc >1
  211. sta 252
  212.  
  213. clc
  214. lda 243
  215. adc <1
  216. sta 253
  217. lda 244
  218. adc >1
  219. sta 254
  220.  
  221. ldy startingx
  222.  
  223. - lda (251),y
  224. sta (209),y
  225. lda (253),y
  226. sta (243),y
  227. iny
  228. cpy endingx
  229. beq -
  230. bcc -
  231.  
  232. inc line
  233. lda line
  234. cmp endingy
  235. bcs through'scrolling'left
  236.  
  237. clc
  238. lda 209
  239. adc <40
  240. sta 209
  241. lda 210
  242. adc >40
  243. sta 210
  244.  
  245. clc
  246. lda 243
  247. adc <40
  248. sta 243
  249. lda 244
  250. adc >40
  251. sta 244
  252. jmp scroll'left'math
  253.  
  254. through'scrolling'left ldx startingy
  255. ldy endingx
  256. clc
  257. jsr plot
  258. jmp old'rom'patch
  259.  
  260. scroll'right ldy startingx
  261. ldx startingy
  262. stx line
  263. clc
  264. jsr plot
  265. jsr old'rom'patch
  266.  
  267. scroll'right'math clc
  268. lda 209
  269. adc <1
  270. sta 251
  271. lda 210
  272. adc >1
  273. sta 252
  274.  
  275. clc
  276. lda 243
  277. adc <1
  278. sta 253
  279. lda 244
  280. adc >1
  281. sta 254
  282.  
  283. ldy endingx
  284. dey
  285. - lda (209),y
  286. sta (251),y
  287. lda (243),y
  288. sta (253),y
  289. dey
  290. bmi +
  291. cpy startingx
  292. beq -
  293. bcs -
  294.  
  295. + inc line
  296. lda line
  297. cmp endingy
  298. bcs through'scrolling'right
  299.  
  300. clc
  301. lda 209
  302. adc <40
  303. sta 209
  304. lda 210
  305. adc >40
  306. sta 210
  307.  
  308. clc
  309. lda 243
  310. adc <40
  311. sta 243
  312. lda 244
  313. adc >40
  314. sta 244
  315. jmp scroll'right'math
  316.  
  317. through'scrolling'right ldx startingy
  318. ldy endingx
  319. clc
  320. jsr plot
  321. jmp old'rom'patch
  322.  
  323. scroll'up'left jsr scroll'up
  324. jmp scroll'left
  325.  
  326. scroll'up'right jsr scroll'up
  327. jmp scroll'right
  328.  
  329. scroll'down'left jsr scroll'down
  330. jmp scroll'left
  331.  
  332. scroll'down'right jsr scroll'down
  333. jmp scroll'right
  334.  
  335. clear'row jsr get'number
  336. sta char
  337. jsr get'number
  338. sta color
  339.  
  340. ldy startingx
  341. - lda char
  342. sta (209),y
  343. lda color
  344. sta (243),y
  345. iny
  346. cpy endingx
  347. beq -
  348. bcc -
  349. rts
  350.  
  351. old'rom'patch lda 210
  352. sec
  353. sbc 648
  354. clc
  355. adc #$d8
  356. sta 244
  357. lda 209
  358. sta 243
  359. rts
  360.  
  361. ;**** get number from BASIC ****
  362.  
  363. get'number jsr $aefd
  364. jsr $ad8a
  365. jsr $b7f7
  366. lda $14  ; got low byte
  367. rts
  368.  
  369. startingx .byt 0
  370. endingx .byt 0
  371. startingy .byt 0
  372. endingy .byt 0
  373. direction .byt 0
  374. char .byt 0
  375. color .byt 0
  376. line .byt 0
  377. sub'table .word scroll'up-1,scroll'down-1,scroll'left-1,scroll'right-1
  378. .word scroll'up'left-1,scroll'up'right-1,scroll'down'left-1,scroll'down'right-1
  379.